drive PACK file format (.DRP) version 2
drivePACK Editor software allows to create or to edit existing .DRP files. DRP files in the SD card can be loaded into drivePACK's memory and then played on a real keyboard. DRP files can also be created with a drivePACK unit by dumping existing ROM PACK cartridges. Dumped DRP files can be copied or transferred to a computer to edit their information or to share them with other users.

Latest version of the .DRP file format is 2 which replaces the obsolete version 1. The main difference between the two versions is that the latest does not include the 0x01:Title metadata block and now all the information of the ROM ( cartridge name, titles names ... ) is contained in the 0x02: Information metadata block in a sort of XML on which the information is stored in text objects delimited by different tags (i.e. <ti>...</ti> ).

The DRP binary file format allows to keep within a single file all the relevant information of a ROM PACK cartridge. It consists on a HEADER followed by different METADATA_BLOCKS. These METADATA_BLOCKS may be present or not and allow to store:
- the title of the cartridge.
- the relevant information of the cartridge, the names of the songs ...
- images related to the ROM PACK cartridge ( manual scans, cartridge label ... )
- the binary content of the cartridge with the songs program code.

The following is a more detailed explanation of each block:

HEADER: 11bytes:
*DRIVEPACK_FILE_VERSION: 11 bytes: string where byte[10] is '\0' : DRIVE_PACK file format version identificaton : [R][O][M][P][A][C][K][v][0][2][\0] (0x57,0x4F.0x4D.0x50,0x41.0x43,0x4B,0x76,0xXX,0xXX,0x00)

METADATA BLOCKS: 1 + 4 + n bytes
*1 + 4 + METADATA_BLOCK_SIZE
*METADATA_BLOCK_TYPE: 1 bytes: uint8: embedded metadata block 1 type: 0x2: Songs information data block, 0x3: ROM content data block, 0x4: Embedded image data block.
*METADATA_BLOCK_SIZE: 4 bytes: uint32: size of embedded metadata block 1 ( does not include the 1 METADATA type byte and the 4 METADATA SIZE bytes ).
*METADATA_BLOCK_DATA: n bytes ....

The content of different types of METADA BLOCKs is:

0x02: Information metadata block:
METADATA_BLOCK_TYPE: 1 byte = [02]
METADATA_BLOCK_SIZE: 4 bytes
METADATA_BLOCK_DATA: 0 to 0xFFFFFFFF bytes. Content of the "Info" block. The data on this METADATA_BLOCK consists on ASCII characters in a sort of XML format with the different text objects information in the ROM PACK, like the ROM PACK cartridge name, the list of the themes names and other...

These are the tags that can be found in the block ( other could be added ):
<rom_info>...</rom_info>: encompasses all the information within the information metadata block.
<ro_ti>...</ro_ti>: name of the ROM PACK cartridge (i.e. "RO-276 - TV TUNES")
<li_ti>...</li_ti>: contains the list with the titles of all the themes in the ROM PACK cartridge. Each title in the list is contained within the <ti>...</ti> tags.
<ti>...</ti>: there is an entry within this tags for the title of each theme in the ROM PACK cartridge.
<info>...</info>: other relevant information of the cartridge like the company who produced, or any other comment.

0x03: ROM content metadata block:
METADATA_BLOCK_TYPE: 1 byte = [03]
METADATA_BLOCK_SIZE: 4 bytes
METADATA_BLOCK_DATA: 0 to 0xFFFF bytes. Content of the "ROM" block. The data on this METADATA_BLOCK is the content of the ROM PACK cartridge with the melodies program. Each byte of that block corresponds to two consecutive nibbles. First bytes in the block are the lowest addresses nibbles, and last bytes in the block are the highest address nibbles. The 4 lowest bits of each byte correspond to the high nibble, and the 4 high bits correspond to the low nibble. So file content [12][34][56][78][9A][BC][DE]... would correspond to ROM content @0:[1], @1:[2], @2:[3], @3:[4], @4:[5] ,@5:[6] ... Note that compared to .BIN files, in .DRP files the nibbles of each byte are swapped, so what in the .BIN file is 0xA5, in the DRP file is 0x5A.

A detailed description of the ROM content can be found in the page dedicated to the ROM PACK technical information.

0x04: Embeded image metadata block:
METADATA_BLOCK_TYPE: 1 byte = [04]
METADATA_BLOCK_SIZE: 4 bytes
METADATA_BLOCK_DATA: 0 to 0xFFFFFFFF bytes

The following image shows the organisation of the content of a .drp version 2 file:

.drp file format example ( click on image to see complete information )

Contact
You can contact me here.
... this page was last updated by Tolaemon on 10-2023 ...
Creative Commons Licence